約 3,280,384 件
https://w.atwiki.jp/kurushima/pages/58.html
米国NISTでは次世代の推奨ハッシュアルゴリズムを公募し、コンペティションを行った上で2012年Q2には最優秀のアルゴリズムを選定します。 関連リンク NIST内のリンク NISTのCryptographic Hash Algorithm Competitionのアナウンス http //www.csrc.nist.gov/groups/ST/hash/sha-3/index.html NIST Hash Forum Mailing Listの参加申し込みページ (誰でも参加OK) http //csrc.nist.gov/groups/ST/hash/email_list.html NIST Cryptographic Hash Algorithm Competition Round1 http //csrc.nist.gov/groups/ST/hash/sha-3/Round1/index.html 情報まとめ IAIK SHA-3 Zoo (コンペ参加アルゴリズムの一覧) http //ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo 参加アルゴリズム Bruce SchneierのSkeinアルゴリズム http //www.schneier.com/skein.html http //www.schneier.com/blog/archives/2008/10/the_skein_hash.html Ron RivestのMD6アルゴリズム http //groups.csail.mit.edu/cis/md6/ 比較調査 Engineering comparison of SHA-3 candidates / SHA3参加アルゴリズムの比較調査 http //www.skein-hash.info/sha3-engineering Classification of the SHA-3 Candidates / SHA3参加アルゴリズム比較の論文 http //www.uni-weimar.de/cms/fileadmin/medien/medsicherheit/Research/SHA3/Classification_of_the_SHA-3_Candidates.pdf 自前のブログの記事(自堕落な技術者の日記) 2008.12.16 SHA-3候補のOID 2008.12.10 NIST第1回SHA3候補会議 2008.12.10 SHA-3まとめサイトでリンク追加 2008.11.30 Bruce SchneierのSHA3 Skeinハッシュアルゴリズム 2008.11.30 NIST SHA3コンペ その他リンク SANS Hash Functions (2008.01.10) http //www.sans.edu/resources/securitylab/hash_functions.php IEEE Cipher s Calendars of Security and Privacy Related Events http //www.ieee-security.org/Calendar/cipher-hypercalendar.html NIST AHSコンペ スケジュール 2007.11 NIST AHS 公募開始 2008.10.31 NIST AHS SHA3コンペ申し込み期限 (64アルゴリズム) 2008.11.01 Round1開始 2008.12.09 Round1候補 (51アルゴリズム) 2009.02.25 First SHA-3 Candidate Conference at Leuven, Belgium 2009年夏 15程度に絞込み 2010.08.?? Second SHA-3 Candidate Conference ????.??.?? 5程度に絞込み (i.e. finalists) ????.??.?? Third SHA-3 Candidate Conference 2012 Q2 NIST AHS コンペ優勝者決定
https://w.atwiki.jp/dentu-os/pages/19.html
言語処理系論 ソーティング 最短経路問題 データ構造論
https://w.atwiki.jp/algorithm_book/
書籍で解説するアルゴリズムを募集します。 株式会社シーアンドアール研究所では、小飼弾氏を著者として、アルゴリズムの解説書を企画しています(当初、発刊予定は2008年前半でしたが、発刊時期が遅れており、申し訳ございません。発刊予定については詳細がわかり次第、発表させていただきます)。 そこで、その書籍のなかで解説するアルゴリズムを募集したいと思います。 これを解説してもらいたいというアルゴリズムがあれば、コンテンツ募集のページに書き込みをお願いします。 書き込みのルールについて 書き込みはコンテンツ募集のページにお願いいたします。 書き込みを行う際は先頭に「-」を付けて箇条書きのスタイルにしてください。 書き込みの内容に関しては重複があってもかまいません(選考の際の参考にさせていただきます)。ただし、一人で同じアルゴリズムを複数、書き込まないようにお願いいたします。 他の人の書き込みをむやみに削除しないようにしてください。 免責事項 書き込みをしていただいた内容は、あくまで書籍で解説するアルゴリズムを選択する際の参考となります。そのため、掲載できない場合もありますので、ご了承ください。 誹謗中傷や、公序良俗に反する書き込みは禁止します。そのような書き込みや、当社が不適切と判断した書き込みについては、削除いたします。 お問い合わせについて ご不明な点やご質問などございましたら、info@c-r.comまでご連絡ください。 Copyright(c) 2007 C R Institute inc. All Rights Reserved.
https://w.atwiki.jp/neetsdkasu/pages/52.html
素数探索 ★素数探索 素数探索のアルゴリズムを思いついたのでここに記す。 ※自分で思いついたが、凡人の俺が思いつくくらいなので ※既に名のある有名なアルゴリズム、あるいはその劣化バージョンにだと思われる ※ググってないのでこのアルゴリズムの名前とかは分からない ●アルゴリズム概要 見つかった素数とそれ以下の素数の倍数でない数を導出する式(kn+d)を使い次の素数を求める ●アルゴリズム説明 2は素数なので 2n+0 (2の倍数) 2n+1 (2の倍数でない) [n=0,1,2,3, ...] と正数全体を分けられる 従って 2 の次にくる素数は 2の倍数でない式 2n+1 の1つの式で 2より大きい数の中で最小の数 である ここで n=0 において 2より大きい数の中で最小の数 である 3 が見つかり 3 は素数である ここで 2の倍数でない式 2n+1 は 2(3n+0) + 1 = 6n + 1 (3の倍数でない) 2(3n+1) + 1 = 6n + 3 (3の倍数) 2(3n+2) + 1 = 6n + 5 (3の倍数でない) [n=0,1,2,3, ...] と書ける 従って 3 の次に来る素数は 3の倍数でない式 6n+1, 6n+5 の2つ式で 3より大きい数の中で最小の数 である ここで n=0 において 3より大きい数の中で最小の数 である 5 が見つかり 5 は素数である ここで 3の倍数でない式 6n+1 と 6n+5 は 6(5n+0) + 1 = 30n + 1 (5の倍数でない) 6(5n+1) + 1 = 30n + 7 (5の倍数でない) 6(5n+2) + 1 = 30n + 13 (5の倍数でない) 6(5n+3) + 1 = 30n + 19 (5の倍数でない) 6(5n+4) + 1 = 30n + 25 (5の倍数) 6(5n+0) + 5 = 30n + 5 (5の倍数) 6(5n+1) + 5 = 30n + 11 (5の倍数でない) 6(5n+2) + 5 = 30n + 17 (5の倍数でない) 6(5n+3) + 5 = 30n + 23 (5の倍数でない) 6(5n+4) + 5 = 30n + 29 (5の倍数でない) [n=0,1,2,3, ...] と書ける 従って 5 の次に来る素数は 5の倍数でない式 30n+1, 30n+7, 30n+13, 30n+19, 30n+11, 30n+17, 30n+23, 30+29 の8つの式で 5より大きい数の中で最小の数 である ここで n=0 において 5より大きい数の中で最小の数 である 7 が見つかり 7 は素数である ここで先ほどと同様に 5の倍数でない式を 30n(7n+0) + 1 = 210n + 1 (7の倍数でない) 30n(7n+1) + 1 = 210n + 31 (7の倍数でない) 30n(7n+2) + 1 = 210n + 61 (7の倍数でない) 30n(7n+3) + 1 = 210n + 91 (7の倍数) 30n(7n+4) + 1 = 210n + 121 (7の倍数でない) 30n(7n+5) + 1 = 210n + 151 (7の倍数でない) 30n(7n+6) + 1 = 210n + 181 (7の倍数でない) 30n(7n+0) + 7 = 210n + 7 (7の倍数) 30n(7n+1) + 7 = 210n + 37 (7の倍数でない) 30n(7n+2) + 7 = 210n + 67 (7の倍数でない) 30n(7n+3) + 7 = 210n + 97 (7の倍数でない) (中略) 30n(7n+5) + 29 = 210n + 179 (7の倍数でない) 30n(7n+6) + 29 = 210n + 209 (7の倍数でない) [n=0,1,2,3, ...] と書ける 従って 7 の次に来る素数は 7の倍数でない式 で 7より大きい数の中で最小の数 である 同様の繰り返しで素数を探索できる ●備考 このアルゴリズムの問題点は式の保持にメモリが大量に必要になることである 素数探索の式 kn+d はそれまでの素数の倍数を含まない数を導き出す式であり 素数探索の式 kn+d において素数であることが保障されるのは最後に見つかった素数より大きい数で最小の数のみである 素数探索の式 kn+d において n=0 のときの値、すなわち d が一見すると素数のように見えるが 今後見つかる素数の倍数である可能性があるためそれらが素数であるかどうかは分からない ※俺は数学に明るくないのでこの部分が正しいかどうかは分からない分からない
https://w.atwiki.jp/c21coterie/pages/427.html
http //rose.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja リンク先は会津大学オンラインジャッジというプログラマ向け問題集を扱ったサイトです。 私はこのサイトでsinapusu2002という名前で登録しプログラムの問題集を解いてます。 私の成績 http //judge.u-aizu.ac.jp/onlinejudge/user.jsp?id=sinapusu2002 極力自力で解こうとしていますが、どうしても解けない問題は検索して答えを見たり、掲示板で質問して解いてます。 その際のカンニング履歴を記録することにしました。 個人的なもので、自分一人が分かれば十分な記録です。 カンニング履歴 1 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0230 lang=jp Problem E 忍者のビル登り ポカミスによる場合分けの見落としに気付かず解けず。 掲示板で質問し、親切な方にテストデータを用意してもらいそのデータをきちんと処理できるまで修正して提出。 2 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0112 lang=jp A Milk Shop 解法は正しかったがlong long 型の存在を知らずに解けず。 掲示板でlong longの存在を教えてもらい解く 3 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0080 lang=jp 0080 Third Root ポカミスで計算式の終了条件を勘違いして解けず。 ネットで検索して答えを見て納得して解く。 本当につまらないミスだった。 4 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0059 lang=jp 0059 Intersection of Rectangles 最初、自分で考えた非効率な方法による処理で一応解く。 効率的な方法があるだろうなと考え、ネットで検索した方法を提出して合格。 5 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0033 lang=jp Problem 0033 Ball 帰納法で解こうとして何故か解けず。 ネットで答えを検索、全探索で解く。 6 Problem 0114 Electro-Fly 最初、何も考えずに解こうとするも時間切れ。 掲示板でアドバイスを待ってる間に、GCDとLCMを組み合わせる方法を思いつくも自信が持てず。 掲示板でも同じ方法で解くことを進めてもらい自信を持って解く。 7 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0125 lang=jp 最初、月日年を個別に計算して経過日数をちまちま計算する効率の悪い方法で解く。 きちんと解けるも、素人考えでは思いつかない方法があるに違いないとネットで検索。 西暦0年からの経過日数を導き出す公式を使いそちらを提出してクリア。 8 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0529 lang=jp 0529 Darts この問題最初ナップザック法で解こうとして惨敗。 ナップザック法では100万*100万の組み合わせを調べることになるので当然時間切れ。 次にSetを使い、1回だけの組、2回の組み合わせ全てをsetに、 1回の組+それで最高点になる2回の組をsetから 2回の組+残り点数で最高点になる2回の組をsetから。 という考え方で解こうとするも少しだけ計算時間が長く不正解。 考え方は正しかったが使った道具setが悪かった。 ネットで検索したバイナリサーチを使った方法に修正して合格。 9 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0557 lang=jp これもlong long型を知らなかったために最初解けず。 解法は正しかったがlonglongをしらないために解けず。 掲示板でlong longの存在を教えてもらい解く。 10 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0090 Problem 0090 Overlaps of Seals 最初、円周上を点が回った時、シール上に点がはいるはいらないという複雑な方法で解こうとするも計算誤差を制御できず惨敗。 他の方の考え方をぱっと見覗いて、それをヒントにコードを記述して解く。 交点が他のシールの中にあるかないかで解くとシンプルな方法に関心。 11 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=1103 英語が読めないために、問題を翻訳してもらいそれを参考に解く。 英語を読めるのも問題のうちと考えたらカンニングになるかな。 12 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1217 家族図と質問文が与えられる。 家族図に対して質問文が正しいならTrue、正しくないならFalseを返せ。 この問題、木構造を作り上げて解くという手間のかかる方法で解く。 struct node{ node* parentNode;//親のノード std string name; std vector node childNodes;//子のノード }; 木構造の幹からのびる幹の保存にvectorを使ったのが間違いの元。同一名称が出てこないということを使い高速化のためにmap<string,node*>に名前をキーにnodeのメモリ座標を保存するという方法を採用。 vectorが拡張されるたびにメモリ位置がずれてmapに保存したメモリ座標とずれるいうことに気付かず、バグとりで何度もはまる。 掲示板で理解力の低い私を見はなさないとても親切な方にご指摘を頂き解く。 本当はこの問題親一人しかない木構造ということを利用してmap string,string で簡単に解ける。 質問文の種類がある人の親の名前さえ得られれば答えられる質問のみというのが問題を解くカギ。 この限りにおいてmap string,string で解ける。 親戚を問う問題だったら木構造必須。 14 http //rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=1155 lang=jp 長ったらしいコードを書いてアセプト。 コードが記号列を処理する時、)を見つけたら(を削除する時、-(という組み合わせがあッた場合の記述を処理し忘れたために不正解を喰らう。 公開されているジャッジデータの存在を掲示板で教えてもらい、ジャッジデータをきちんと処理できるまでコードを修正してアセプト。 どうしてもわからないので途中で他の人の答えをちらみもした。 この問題驚くほど短いコードで解決できるらしいが一応自分で考えたコードでアセプトしたかったので参考にせず自前コードを微修正してアセプト。 問題も解けたので短いコードを研究。 短いコードは再帰下降構文解析という、状態遷移マシーンを再帰にすることで構文解析を可能にするテクニックらしい。 何となく概念は理解。 僕が自分で再帰下降で構文解析を書くとかなり時間がかかると思うけど、多分普通に情報系の授業を受けていたら誰にでも使いこなせるものだと思う。 こういう時大学行っといたらよかったなと痛感、俺の知らないプログラムテクニックとか大学ならたくさんあるんだろうな。 大学レベルの教育や研究とプログラムが結びつくと仕事がいっぱいあるんだろうなと考えたりはする。 自前の長いコードはこちら。 http //www14.atwiki.jp/c21coterie?cmd=upload act=open pageid=427 file=1155HowcanIsatisfytheeLetmecounttheways4.txt 15 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0547 普通に長めのコードでアセプト。 今回のカンニングはコード記述後、提出前にテストデータでコードをチェックする時にカンニング。 他の人の正答コードを使ってテストデータを用意しそのデータでコードをチェックしてから提出し合格。 テストデータを自分で用意することも問題のうちとするなら明らかにカンニング。 正答者の中では最も長いコードで提出。 今回も他の人の短いコードを研究。 賢いメモ化探索の方法があるらしい。 16 http //d.hatena.ne.jp/k_operafan/20101226/1293368885 迷路を解く問題。 2、3度ほど不正解を喰らってしまったので、他の人の正答コードを使ってテストデータを用意。 テストデータをキチン通るまで修正してアセプト。 直感と惰性だけで無意識のうちにコードを修正してたのでどこが悪かったのか良くわからない状態。 半分無意識でコード打ってた。 脱出口は一度に一人しか脱出できないという条件を多人数が一度に脱出できると勘違いしてたのが不正解の理由だったのかも? 他の人のコードの詳細を読むのは今から。 17 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0527 碁石を一定のルールで並べてオセロのようにひっくり返す問題。 最初何も考えず、碁石一つを配列の要素一つで表現する方法で玉砕。 2度目は提出前にジャッジデータでテストしてから提出。 記述ミスのポカミスを一つ訂正して合格。 18 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0536 ジャッジデータでテストしてから提出。 場合分けのポカミスで意外と時間がかかったのと、再帰を使わなかったのでソースが無駄に膨らんだ。 ソースコードの短さと実行速度でいつも回答者ランキング上位にいるPLDWさんはすごいなあと思う。 機会があれば師事して教えてもらいたいがプログラマで子弟制度なんてないだろうし面識もないしなあ。 19 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0548 この問題、正しい答えは出るのだけど、コードが遅いので時間切れで不正解になりました。 高速化について延々悩んだのち、結局JOIのサイトにある考え方を見て100%カンニングして正答。 まさかあんな簡単なことで答えが出るとは思わなかった。 カンニングに使った答えの掲載されているページ。 http //www.ioi-jp.org/joi/2009/2010-yo-prob_and_sol/2010-yo-t6/review/2010-yo-t6-review.html 自分の提出したソースコード。 他の正解者がメモリを大量に使ってる中、私一人メモリ使用量最低で正解。 http //www14.atwiki.jp/c21coterie/?cmd=upload act=open page=%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%8B%89%E5%BC%B7%E6%97%A5%E8%A8%98 file=0548Reindeerwithnosenseofdirection0.txt 20 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0037 自力で解くのがめんどくさかったので http //blog.livedoor.jp/kenyoi/archives/3995712.htmlを参考に関数を少しだけ縮めてアセプト。 21 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0509 どうしても考え方がわからなかったので答えの考え方を書いたページを見て解きました。 カンニングしましたが実装で工夫をしてコード実行速度1位(2011/11/24時点)を叩き出しました。 http //www.ioi-jp.org/joi/2005/2006-ho-prob_and_sol/2006-ho-t5-review.html 22 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0551 つららが折れるまでの時間を計算する問題。 コードに自信が持てなかったので公開されているジャッジデータでチェックしてから正答。 23 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0550 お菓子の棒を二人で分ける問題。 不正回を食らったのでジャッジデータを検証してみたらジャッジデータに不備(いくつかのデータで問題と余分な関係ない入力が末尾に1つ)あることが判明。 この余分なデータに対する対処を書いて2回でアセプト。 24 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0553 RPGを題材にしたダンジョンを下る問題。 コードのHP上げ下げ分岐条件に自信が持てず公開されているジャッジデータを使ってテストしてからアセプト。 ジャッジデータで2か所ポカミスを見つけてアセプト。 25 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0504 カードゲームを題材にした問題。 まだ解いてないがどうしても考え方がわからなかったので答えを読み、実装方法は分かったものの答えの考え方が分からなかったので考え方を掲示板で質問もした問題。 26 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0537 ビンゴを題材にした問題。 まだ解いてない。 答えの考え方を読むも効率的な実装方法まで到達できず手を出しかねている問題。 27 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1011 炭素化合物で炭素の最大数を返す問題。 英語の問題文を読解できず、掲示板で翻訳してもらい只今挑戦中。 翻訳だけでいいのに、答えや考え方まで教えてもらい非常に親切にしていただいた問題。 28 http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2105 音楽ソフトを題材にした練習問題。 どうしても解けないので公式からジャッジデータを頂いて挑戦。 VC++.netとBCCで同じコードをコンパイルして実行するとVC++ではきちんと動くのにBCCではきちんと動かないという問題に直面。 どうなってるのかよくわからない状態。 29 570 Zig-Zag Numbers http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0570 ジグザグ数という数の個数を数えて返す問題。 一発合格するつもりが答え出力時のprintfたった一行を間違えて書いていたのに気付かず2連続WAを食らう。 ジャッジデータを使ってミスに気づきその一行だけ修正してクリア。 すごくもったいない感じがした問題。 30 2401 Equation http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2401 この問題は実装もアルゴリズムも1回目から間違ってなかったが採点データ読み込み部分だけを書き間違えて3連続タイムリミッドを食らった問題。 採点用データを入手して解く。 簡単な問題でアセプトの稼ぎ時だったのにもったいないことをしたと思う。 以後ポカミス注意だな。 31 soj2002 X-Ray Screening System http //judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2002 この問題はどうしても解き方がわからなくて他人のコードを参考にしてしまった問題。 非常にシンプルな解法だったので自力で解けなかったのがかなり悔しかった思い出がある。 どんな順番で重なってるかの組み合わせを調べて、上手くいくのがあるかどうかを決めて調べていくだけでした。
https://w.atwiki.jp/magicman/pages/24444.html
アルゴリズム・EVOチャージャー C 水 (3) 呪文: ■マナゾーンにあるカードを1枚、手札に戻す。 Evoチャージャー(この呪文を唱えた後、墓地に置くかわりに自分のマナゾーンに置く。その後、クリーチャーを1体、自分のマナゾーンからバトルゾーンにある自分の進化クリーチャー1体の下に重ねて置いてもよい。) 作者:翠猫 水のEVOチャージャー呪文。 チャージャーでありながらマナを回収できる。チャージャー呪文を再利用可能という呪文。とはいえプラマイゼロなので普通にチャージャーとして運用するのは難しい。再利用するにしてもコストが3なのでマナがたまりきっていない状況ではそれも難しい。Evoチャージャーの効果を使うならマナが1枚減ってしまうのも見過ごせない欠点。 関連 《ストライク・EVOチャージャー》 《ジャッジメント・EVOチャージャー》 《バイラル・EVOチャージャー》 《ルイン・EVOチャージャー》 《アルゴリズム・EVOチャージャー》 評価 名前 コメント
https://w.atwiki.jp/japan1129/pages/225.html
伝統の味 お米 通販 芸能プロダクション 六本木 クラブ コンパニオン 西多摩 玄米 格安 着エロ リフォーム 屋根 火災保険申請代行
https://w.atwiki.jp/enowiki/pages/19.html
検索 ハッシュwiki 参考(C言語) トライ木wiki 参考資料 パトリシア木wiki
https://w.atwiki.jp/hiropknot/pages/81.html
【2分探索木】 木構造の頂点を「根(root)」と呼ぶ。 最下部を「葉(leaf)」と呼ぶ。 根から葉の途中にある要素を「節(node)」と呼ぶ。 各要素をつなぐ線を「枝(branch)」と呼ぶ。 ★幅優先探索 根からスタートし、根に近い節から順に探索する方法。 同じ深さの場合、「左⇒右」の順に探索する。 ★先行(行きがけ)順深さ優先探索 根からスタートし、左側にある要素を探索する。 要素の左を通った時にカウント。 ★後行(帰りがけ)順深さ優先探索 左端の葉からスタートし、右の葉⇒上位の節、の順に探索する。 要素の右を通ったときにカウント。 ★中間(通りがけ)順深さ優先探索 要素の下を通ったときにカウント。 【整列アルゴリズム】 ★バブルソート(単純選択法) 隣り合う要素を比較して、大小の順が逆であればそれらの要素を入れ替えるという処理を繰り返す。 比較回数はO(n^2)。 ★クイックソート 中間的な基準値を決めて、それよりも大きな値をまとめたもの、小さな値をまとめたものをそれぞれ振り分ける。 それぞれの区分の中で再度中間的な基準値を決めて、、、という処理を繰り返す。 比較回数は最良でO(n^2)、最悪でO(n log n)。 ★マージソート 整列対象のデータ列に対して分割と併合を繰り返す。 ★ヒープソート 未整列の部分を順序木にし、そこから最小値を取り出して整列済みの部分に移す。 2分木の形にしたときに、各節の値が「親≧子」または「子≧親」という規則で並ばせる。 比較回数はO(n log n)。 【引数の種類】 ★値呼び出し(Call by Value) プログラム中で関数やサブルーチンなどに引数を渡すときに、その値のみを渡す方式。 渡された関数などの中で値を変更しても、呼び出し元の変数の内容は変わらない。 ★参照呼び出し(Call by Reference) プログラム中で関数やサブルーチンなどに引数を渡すときに、変数への参照(メモリ中のアドレスなど)を渡す方式。 関数などの中で値を変更すると、元の変数も同じように変更される。 【プログラム構造】 ★再入可能(リエントラント)プログラム 複数のタスクから同時に呼び出されても、それぞれに対して正しい結果を返すことが出来るプログラム。 ★再帰(リカーシブ)プログラム 自分自身を呼び出しても正しい結果を返すことが出来るプログラム。 ★再利用可能(リユーザブル)プログラム プログラムの主記憶への展開を初回実行時のみ行い、以降は何度でも正しく使用できるプログラム。 再配置可能(リロケータブル)プログラム プログラムを主記憶上のどの位置においても実行できるようにしたプログラム。
https://w.atwiki.jp/program/pages/18.html
トップページ 構文解析 構文解析のメモ BNFのメモ ページビュー -